package com.antball.data.other;

import java.util.Arrays;

/**
 * 交换排序 快速排序
 * @Auther: huangsj
 * @Date: 2019/9/19 14:30
 * @Description:
 */
public class QuickSort {


    public static void quickSort(int[] arr,int low,int high){
        int i,j,temp,t;
        if(low>high){
            return;
        }

        i=low;
        j=high;
        //temp就是基准位
        temp = arr[low];

        while (i<j) {
            //先看右边，依次往左递减
            while (temp<=arr[j]&&i<j) {
                j--;
            }
            //再看左边，依次往右递增
            while (temp>=arr[i]&&i<j) {
                i++;
            }
            //如果满足条件则交换
            if (i<j) {
                t = arr[j];
                arr[j] = arr[i];
                arr[i] = t;
            }

        }
        //最后将基准为与i和j相等位置的数字交换
        arr[low] = arr[i];
        arr[i] = temp;

        System.out.println(Arrays.toString(arr));
        //递归调用左半数组
        quickSort(arr, low, j-1);
        //递归调用右半数组
        quickSort(arr, j+1, high);
    }


    public static void main(String[] args){
        int[] arr = {60,7,2,44,27,62,3,4,39,1,8,59,19};
        System.out.println(Arrays.toString(arr));
        quickSort(arr, 0, arr.length-1);
    }
}
